#ifndef	_SESSION_H_
#define	_SESSION_H_
#include <common.h>
//定义一个session的结构体
typedef	struct session
{
	uid_t uid;
	//控制连接
	int ctrl_fd;//控制连接套接字
	char cmdline[MAX_COMMAND_LINE];
	char cmd[MAX_COMMAND];
	char arg[MAX_ARG];
	//数据连接
	struct sockaddr_in *port_addr;
	int data_fd;
	int pasv_listen_fd;
	//限速
	uint32_t bw_upload_rate_max;
	uint32_t bw_download_rate_max;
	long bw_transfer_start_sec;
	long bw_transfer_start_usec;
	//空闲断开
	int data_process;
	//父子进程的通道
	int parent_fd;
	int child_fd;
	//FTP协议状态
	int is_ascii;
	//断点续传位置记录
	long long restart_pos;
	//重命名前的文件
	char *rnfr_name;
	int abor_received;
	//连接数限制
	uint32_t num_clients;
	uint32_t num_this_ip;
} session_t;

void begin_session(session_t *sess);

#endif

